package com.simtop.mapper;

import com.simtop.domain.user.SysUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName SysUserMapper
 * @Description TODO
 * @Author lvyongwei
 * @Date 2020-08-17 18:04
 **/
@Mapper
public interface SysUserMapper {

    /**
     * 根据用户名查询用户信息
     * @param userName
     * @return
     */
    public SysUser getUserByUserName(String userName);

    /**
     * 注册/添加系统用户
     * @param sysUser
     * @return
     */
    public boolean insertSysUser(SysUser sysUser);

    /**
     * 判断用户名是否重复
     * @param userName
     * @return
     */
    public SysUser verifyUserName(String userName);

    /**
     * 判断电话是否重复
     * @param phone
     * @return
     */
    public SysUser verifyPhone(String phone);

    /**
     * 判断邮箱是否重复
     * @param email
     * @return
     */
    public SysUser verifyEmail(String email);

    /**
     * 修改用户密码
     * @param email 邮箱
     * @param password 新密码
     * @return
     */
    public boolean updatePassword(@Param("email") String email,@Param("password") String password);


    /**
     * 删除 / 停用用户
     * @param userIds    用户id
     * @param delStatus   用户状态
     * @return
     */
    public boolean changeUserStatus(@Param("userIds") Long[] userIds,@Param("delStatus") int delStatus);


    /**
     * 修改用户信息
     * @param sysUser  系统用户信息
     * @return
     */
    public boolean updateSysUser(SysUser sysUser);

    /**
     * 根据用户id集合获取用户名
     * @param userIds
     * @return
     */
    public List<SysUser> getUserByIds(@Param("userIds") List<Long> userIds);

    /**
     * 根据用户名集合获取用户名
     * @param userNames
     * @return
     */
    public List<SysUser> getUserByUserNames(@Param("userNames") List<String> userNames);

}
